package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 合同收款-CRUD对象 contract_payment
 *
 * @author ruoyi
 * @date 2022-08-02
 */
public class ContractPayment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long paymentId;

    /** 是否需要内部划转 */
    @Excel(name = "是否需要内部划转")
    private String internalTransfer;

    /** 所属部门 */
    @Excel(name = "所属部门")
    private String department;

    /** 部门负责人 */
    @Excel(name = "部门负责人")
    private String departmentHead;

    /** 项目经理 */
    @Excel(name = "项目经理")
    private String projectManager;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 合同签订部门 */
    @Excel(name = "合同签订部门")
    private String contractSigningDepartment;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同类型 */
    @Excel(name = "合同类型")
    private String contractType;

    /** 支付条件 */
    @Excel(name = "支付条件")
    private String paymentTerms;

    /** 收款可能性 */
    @Excel(name = "收款可能性")
    private String collectionPossibility;

    /** 预估应收金额 */
    @Excel(name = "预估应收金额")
    private BigDecimal estimatedCollectPrice;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceDate;

    /** 实收金额 */
    @Excel(name = "实收金额")
    private Long collectPrice;

    /** 到账日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到账日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date accountingDate;

    /** 特殊说明 */
    @Excel(name = "特殊说明")
    private String specialExplain;
    /** 用户ID */
    private Long userId;

    /** 部门ID */
    private Long deptId;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public void setPaymentId(Long paymentId)
    {
        this.paymentId = paymentId;
    }

    public Long getPaymentId()
    {
        return paymentId;
    }
    public void setInternalTransfer(String internalTransfer)
    {
        this.internalTransfer = internalTransfer;
    }

    public String getInternalTransfer()
    {
        return internalTransfer;
    }
    public void setDepartment(String department)
    {
        this.department = department;
    }

    public String getDepartment()
    {
        return department;
    }
    public void setDepartmentHead(String departmentHead)
    {
        this.departmentHead = departmentHead;
    }

    public String getDepartmentHead()
    {
        return departmentHead;
    }
    public void setProjectManager(String projectManager)
    {
        this.projectManager = projectManager;
    }

    public String getProjectManager()
    {
        return projectManager;
    }
    public void setCustomerName(String customerName)
    {
        this.customerName = customerName;
    }

    public String getCustomerName()
    {
        return customerName;
    }
    public void setContractSigningDepartment(String contractSigningDepartment)
    {
        this.contractSigningDepartment = contractSigningDepartment;
    }

    public String getContractSigningDepartment()
    {
        return contractSigningDepartment;
    }
    public void setContractNo(String contractNo)
    {
        this.contractNo = contractNo;
    }

    public String getContractNo()
    {
        return contractNo;
    }
    public void setContractName(String contractName)
    {
        this.contractName = contractName;
    }

    public String getContractName()
    {
        return contractName;
    }
    public void setContractType(String contractType)
    {
        this.contractType = contractType;
    }

    public String getContractType()
    {
        return contractType;
    }
    public void setPaymentTerms(String paymentTerms)
    {
        this.paymentTerms = paymentTerms;
    }

    public String getPaymentTerms()
    {
        return paymentTerms;
    }
    public void setCollectionPossibility(String collectionPossibility)
    {
        this.collectionPossibility = collectionPossibility;
    }

    public String getCollectionPossibility()
    {
        return collectionPossibility;
    }
    public void setEstimatedCollectPrice(BigDecimal estimatedCollectPrice)
    {
        this.estimatedCollectPrice = estimatedCollectPrice;
    }

    public BigDecimal getEstimatedCollectPrice()
    {
        return estimatedCollectPrice;
    }
    public void setInvoiceDate(Date invoiceDate)
    {
        this.invoiceDate = invoiceDate;
    }

    public Date getInvoiceDate()
    {
        return invoiceDate;
    }
    public void setCollectPrice(Long collectPrice)
    {
        this.collectPrice = collectPrice;
    }

    public Long getCollectPrice()
    {
        return collectPrice;
    }
    public void setAccountingDate(Date accountingDate)
    {
        this.accountingDate = accountingDate;
    }

    public Date getAccountingDate()
    {
        return accountingDate;
    }
    public void setSpecialExplain(String specialExplain)
    {
        this.specialExplain = specialExplain;
    }

    public String getSpecialExplain()
    {
        return specialExplain;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("paymentId", getPaymentId())
                .append("internalTransfer", getInternalTransfer())
                .append("department", getDepartment())
                .append("departmentHead", getDepartmentHead())
                .append("projectManager", getProjectManager())
                .append("customerName", getCustomerName())
                .append("contractSigningDepartment", getContractSigningDepartment())
                .append("contractNo", getContractNo())
                .append("contractName", getContractName())
                .append("contractType", getContractType())
                .append("paymentTerms", getPaymentTerms())
                .append("collectionPossibility", getCollectionPossibility())
                .append("estimatedCollectPrice", getEstimatedCollectPrice())
                .append("invoiceDate", getInvoiceDate())
                .append("collectPrice", getCollectPrice())
                .append("accountingDate", getAccountingDate())
                .append("specialExplain", getSpecialExplain())
                .append("userId", getUserId())
                .append("deptId", getDeptId())
                .toString();
    }
}
